package com.self.reflect;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;

/**
 * 作者：tianjiayuan
 * 创建时间：2018-06-13 12:46
 * 类描述：
 * 修改人：
 * 修改时间：
 */
public class Client {

    public static void main(String[] args) {
        //真实对象
        Subject subject = new RealSubject();

        //真实对象的封装
        InvocationHandler handler = new MyProxy(subject);

        //创建代理对象
        Subject subject1 = (Subject)Proxy.newProxyInstance(handler.getClass().getClassLoader(), subject.getClass().getInterfaces(), handler);


        System.out.println(subject1.getClass().getName());

        subject1.rent();

        subject1.hello("tian");

    }
}
